<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

include 'com/aristo/ingenieros/util/Connection.php';
include 'com/aristo/ingenieros/view/Response.php';
include 'com/aristo/ingenieros/presenter/UserPresenter.php';

use com\aristo\ingenieros\util\Connection;
use com\aristo\ingenieros\view\Response;
use com\aristo\ingenieros\presenter\UserPresenter;
/**
 * Description of Handler
 *
 * @author Aristo Ingenieros
 */
use \stdClass;

setlocale(LC_ALL, 'es-ES');

function fullUpper($string){ 
  return strtr(strtoupper($string), array( 
      "à" => "À", 
      "è" => "È", 
      "ì" => "Ì", 
      "ò" => "Ò", 
      "ù" => "Ù", 
          "á" => "Á", 
      "é" => "É", 
      "í" => "Í", 
      "ó" => "Ó", 
      "ú" => "Ú", 
          "â" => "Â", 
      "ê" => "Ê", 
      "î" => "Î", 
      "ô" => "Ô", 
      "û" => "Û", 
          "ç" => "Ç", 
    )); 
}

if (isset($_REQUEST['mod'])) {
    $modulo = $_REQUEST['mod'];
    switch ($modulo) {
        case 'LOGIN':
            session_start();
            if (isset($_REQUEST['usuario']) && isset($_REQUEST['contrasenia'])) {
                $usuario = $_REQUEST['usuario'];
                $password = $_REQUEST['contrasenia'];

                $conexion = Connection::getConnection();

                $response = UserPresenter::getLogin($usuario, $password, $conexion);

                $respuesta = new stdClass();
                $respuesta->estado = 'SUCCESS';

                if ($response->getStatus() == Response::$STATUS_OK) {
                    //echo var_dump($response->getType());
                    $_SESSION['aristoing_user'] = $response->getResult()->getIdpersona();
                    $_SESSION['aristoing_module'] = $response->getResult()->getModulo();

                    $respuesta->descripcion = 'Inicio sesión con éxito';
                } else {
                    session_unset();
                    session_destroy();
                    $respuesta->estado = 'ERROR';
                     $respuesta->module = 'NULL';
                    $respuesta->descripcion = $response->getResult();
                }
                $conexion->close();
                echo json_encode($respuesta);
            } else {
                $respuesta = new stdClass();
                $respuesta->estado = 'ERROR';
                $respuesta->descripcion = 'Ingrese usuario y contraseña';
                $respuesta->module = 'NULL';
                echo json_encode($respuesta);
            }
            break;
        case 'LOGOUT':
            session_start();
            session_unset();
            session_destroy();
            $respuesta = new stdClass();
            $respuesta->estado = 'SUCCESS';
            $respuesta->descripcion = 'Cerró sesion con éxito';
            echo json_encode($respuesta);
            break;
        case 'SESSION':
            session_start();
            if (isset($_SESSION['aristoing_user']) && isset($_SESSION['aristoing_module'])) {
                $respuesta = new stdClass();
                $respuesta->estado = 'SUCCESS';
                $respuesta->descripcion = 'Existe sesión activa';
                $respuesta->module = $_SESSION['aristoing_module'];
                echo json_encode($respuesta);
            } else {
                $respuesta = new stdClass();
                $respuesta->estado = 'SUCCESS';
                $respuesta->descripcion = 'No inicio sesión';
                $respuesta->module = 'NULL';
                echo json_encode($respuesta);
            }
            break;
        case 'CONTA':
            include 'HandlerAccounting.php';
            break;
        case 'SECRE':
            include 'HandlerSecretary.php';
            break;
        default:
            $respuesta = new stdClass();
            $respuesta->estado = 'ERROR';
            $respuesta->descripcion = 'Módulo no se encuentra configurado';
            echo json_encode($respuesta);
            break;
    }
} else {
    $respuesta = new stdClass();
    $respuesta->estado = 'ERROR';
    $respuesta->descripcion = 'Formato de json inválido, posible error de internet';
    echo json_encode($respuesta);
}